<?php
    class Diretoria extends CI_Controller{
    
        function index (){
            $this->estaLogado();
            redirect('diretoria/listarDiretorias');
        }
        
        function estaLogado(){
            $id = $this->session->userdata('pessoa_id');
            if(empty($id)){
                redirect('pessoa/login');
            }else{
                $this->temAvaliacoes($id);
            }
        }
        
        function temAvaliacoes($id){
            $this->load->model('pessoaModel');
            $aval = $this->pessoaModel->temAvaliacoes($id);
            $this->session->set_userdata('avaliacoes', $aval);
            return true;
        }
        
        function listarDiretorias(){
            $this->load->model('diretoriaModel');
            $dados['diretorias'] = $this->diretoriaModel->getDiretorias();
            
            foreach ($dados['diretorias'] as $diretoria){
                $diretoria->diretor = $this->diretoriaModel->getDiretor($diretoria->id_diretor);
            }
            
            $this->load->view('diretoria/listarDiretorias', $dados);
        }
        
        function cadastrarDiretoria(){
            $this->load->model('pessoaModel');
            $dados['dropMembros'] = $this->pessoaModel->dropMembros();
            $this->load->view('diretoria/cadastrarDiretoria',$dados);        
        }
    
        function cadastrandoDiretoria(){
            $this->estaLogado();
            $this->load->model('diretoriaModel');
            $this->load->model('pessoaModel');
        
            $dados['diretoria'] = $this->input->post('nome');
            $dados['id_diretor'] = $this->input->post('diretor');
            $add['Diretoria_id'] = $this->diretoriaModel->cadastrarDiretoria($dados);
            $membros = $this->input->post('membros');
            
            foreach ($membros as $membro){
                $add['id'] = $this->diretoriaModel->converteNomeParaId($membro);
                $this->pessoaModel->editarMembro($add);
            }
        
            redirect('diretoria/listarDiretorias');
        }
    
        function editarDiretoria(){
            $this->estaLogado();
            $this->load->model('diretoriaModel');
            $this->load->model('pessoaModel');
        
            $id = $this->uri->segment(3);
        
            $dados['diretoria'] = $this->diretoriaModel->getDiretoria($id);
            $dados['dropMembros'] = $this->pessoaModel->dropMembros();
            $this->load->view('diretoria/editarDiretoria', $dados);
        }
    
        function editandoDiretoria(){
            $this->estaLogado();
            $this->load->model('diretoriaModel');
        
            $dados['id'] = $this->input->post('id');
            $dados['diretoria'] = $this->input->post('nome');
            $dados['id_diretor'] = $this->input->post('diretor');
            $this->diretoriaModel->editarDiretoria($dados);
        
            redirect('diretoria/listarDiretorias');
        }
    
        function excluirDiretoria(){
            $this->estaLogado();
            $this->load->model('diretoriaModel');
            $id = $this->uri->segment(3);
        
            $this->diretoriaModel->excluirDiretoria($id);
            return true;
        }
        
        function listarMembrosDiretoria(){
            $this->load->model('diretoriaModel');
            $id = $this->uri->segment(3);
            if($id)
                $dados['diretoria_id'] = $id;
            else
                $dados['diretoria_id'] = $this->session->userdata('diretoria_id');
            
            $dados['diretoria'] = $this->diretoriaModel->getDiretoria($dados['diretoria_id']);
            $dados['membros'] = $this->diretoriaModel->getMembrosDiretoria($dados['diretoria_id']);
            
            $this->load->view('diretoria/membrosDiretoria', $dados);  
        }
        
        function adicionarMembroDiretoria(){
            $this->load->model('diretoriaModel');
            
            $dados['diretoria_id'] = $this->uri->segment(3);
            $dados['membros'] = $this->diretoriaModel->dropMembrosSemDiretoria();
            
            $this->load->view('diretoria/adicionarMembroDiretoria', $dados);
        }
        
        function adicionandoMembroDiretoria(){
            $this->load->model('diretoriaModel');
            
            $dados['Diretoria_id'] = $this->input->post('diretoria');
            $membro = $this->input->post('membro');
            
            $this->diretoriaModel->adicionarMembroDiretoria($dados, $membro);
            
            redirect('diretoria/listarMembrosDiretoria/'.$dados['Diretoria_id']);
        }
        
        function retirarMembroDiretoria(){
            $this->load->model('diretoriaModel');
            $id = $this->uri->segment(3);
            
            $this->diretoriaModel->retirarMembroDiretoria($id);
            return true;
        }
    }
?>
